/************************************************************
* 연속선택박스
* 홈페이지 : http://asam.pe.kr
* 수정일 : 2007-10-04
* 작성자 : 아삼
************************************************************/

ChainSelect = function(cs_data,x_url, cate4Check) {
        this.cs_data = cs_data;// 변경될 SELECT박스 데이타
        this.init_cs_data = {};// 초기화 SELECT박스 데이타
        this.x_url = x_url; // 정보를 얻어올 페이지
        this.sids = [];// 관련 SELECT박스 아이디 배열

        // sids정보, SELECT박스 초기화
        for(sid in this.cs_data) {
                this.sids.push(sid);
                this.init_cs_data[sid] = cs_data[sid];
                this.set_select_box(sid);
        }

        // change 이벤트, 마지막 제외
        for(var i=0; i<this.sids.length-1; i++) {
                Event.observe(this.sids[i], 'change', this.x_set_select.bindAsEventListener(this, cate4Check));
        }
}

ChainSelect.prototype = {
        //// 변경된 다음 항목 목록을 가져 옮

        x_set_select: function(event, check) {
            var event_id = Event.element(event).id;
            this.x_set_select_box(event_id, check); 
        }, 

        x_set_select_box: function(event_id, check, original_event_id) {
                var params = $H();
                var init_flag = false;
                for(var i=0; i<this.sids.length; i++) {
                        params[this.sids[i]] = $F(this.sids[i]);
                        if(this.sids[i] == event_id) {
                                params['event_id'] = this.sids[i];
                                init_flag = true;
                        }
                        else if(init_flag) {
                                this.cs_data[this.sids[i]] = this.init_cs_data[this.sids[i]];
                                this.set_select_box(this.sids[i]);
                        }
                }
                if(original_event_id) {
                    params['original_target_event'] = original_event_id;
                } else {
                    params['original_target_event'] = event_id;

                }
                var o_ms = this;
                new Ajax.Request(this.x_url, {
                        method: 'post',
                        encoding: '',
                        parameters: params,
                        onSuccess: function(transport) {
                                var tmp = transport.responseText.evalJSON(true);
                                o_ms.cs_data[tmp.change_id] = tmp.list;
                                o_ms.set_select_box(tmp.change_id);

                                if(tmp.change_id == 'cate2') {
                                            var select_box = $('cate3');
                                            select_box.innerHTML = '';
                                            var o_option = document.createElement("option");
                                            select_box.options.add(o_option);
                                            o_option.value = '';
                                            o_option.innerHTML = '--소분류--';
                                }
                        }
                });

                if(check && event_id != 'cate3') {
                        this.x_set_select_box('cate3', null, event_id)
                }
        },

        //// SELECT박스 데이타 갱신
        set_select_box: function(sid) {
            var select_box = $(sid);
            var value_str = '';
            select_box.innerHTML = '';
            for(var i=0; i<this.cs_data[sid].length; i++) {
                var o_option = document.createElement("option");
                select_box.options.add(o_option);
                o_option.value = this.cs_data[sid][i][0];
                o_option.innerHTML = this.cs_data[sid][i][1];
                if(this.cs_data[sid][i][2] == 'true') {
                    o_option.selected = "selected";
                }
            }
        }
}
